Data communication protocols are becoming of ever increasing significance as the evolution to the Information Age continues. Such protocols are frequently defined using a layered approach based, at least in part, on the seven-layer Reference Model of Open System Interconnection (OSI) developed by the International Standards Organization (ISO). The principles applied by the ISO to arrive at the seven layers are listed in the text Computer Networks, (1981) by A. S. Tanenbaum as follows: (1) a layer should be created where a different level of abstraction is needed, (2) each layer should perform a well defined function, (3) the function of each layer should be chosen with an eye toward defining internationally standardized protocols, (4) the layer boundaries should be chosen to minimize the information flow across the interfaces, and (5) the number of layers should be large enough that distinct functions need not be thrown together in the same layer out of necessity, and small enough that the architecture does not become unwieldy.
Two of the most important data communication protocols at present are the X.25 and X.75 standard protocols promulgated by the International Telegraph and Telephone Committee (CCITT). The X.25 standard specifies the interface between data terminal equipment (DTE) and data circuit-terminating equipment (DCE) for terminals operating in the packet mode on public data networks. The X.75 standard defines the characteristics and operation of an interexchange signaling system for international packet-switched data transmission services. The two standards are similar in many respects and are being used, at least as guides, more generally in a wide variety of data communication applications.
The 1984 versions of both the X.25 and X.75 standards include multi-link procedures to be used when data communication packets are distributed across multiple physical links. The specified procedures in effect define an additional protocol layer between the packet layer 3 and the link-level layer 2 of those standards. The specified multi-link procedure requires a two-byte header including 12 bits for sequencing up to 4096 packets. The procedure uses a windowing mechanism where all transmitted packets are given a single sequence number, and some number of packets are sent (up to an agreed upon window size) without waiting for an acknowledgment from the receiving end. After the agreed-upon number of packets are sent, the transmitter waits until the oldest packet is acknowledged before rotating the window and transmitting more packets. On the receiving end, there is also a window of acceptable sequence numbers expected, with an additional guard region in which packets are accepted but errors are logged.
Although the multi-link procedures specified in the X.25 and X.75 standards perform their intended functions, they have several disadvantages in applications where: (1) the packet size is small and the overhead of a two-byte multi-link header is excessive and/or, (2) the required speed of reorganizing received packets into messages is greater than that afforded by the packet sequencing and windowing mechanism specified by the standards.
In view of the foregoing, two recognized problems in the art are the excessive multi-link overhead inherent in known multi-link procedures and the delays in delivering messages to their destination that result from adhering to those procedures.